﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SimpleTaskManager.Domain.Entities;

namespace SimpleTaskManager.Domain.Abstract
{
    /// <summary>
    /// An interface for a repository containing the skills
    /// </summary>
    public interface ISkillRepository
    {
        /// <summary>
        /// A collection of the skills that can be used in the application
        /// </summary>
        IQueryable<Skill> Skills { get; }

        /// <summary>
        /// Adds skill to the repository
        /// </summary>
        /// <param name="skill">new skill that should be added to the repository</param>
        void Add(Skill skill);

        /// <summary>
        /// Saves changes in the given skill to the database
        /// </summary>
        /// <param name="skill">edited skill</param>
        void Edit(Skill skill);

        /// <summary>
        /// Deletes skill identified by paramater id from the repository
        /// </summary>
        /// <param name="id">id of the skill which should be deleted</param>
        void Delete(int id);
    }
}
